package com.sky.config;

import com.sky.properties.AliOssProperties;
import com.sky.utils.AliOssUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
@Slf4j
public class OssConfiguration { // 配置类: 在项目启动时, 自动加载.
    @Bean // 在项目启动时创建AliOssUtil对象(其实是执行aliOssUtil方法), 并且将其放入spring容器中. 参数aliOssProperties也是自动注入的(因为@Component)
    @ConditionalOnMissingBean // 如果容器中不存在AliOssUtil对象, 则创建一个, 否则不创建
    public AliOssUtil aliOssUtil(AliOssProperties aliOssProperties) {
        log.info("开始创建阿里云文件上传工具类：{}", aliOssProperties);
        return new AliOssUtil(aliOssProperties.getEndpoint(), aliOssProperties.getAccessKeyId(), aliOssProperties.getAccessKeySecret(), aliOssProperties.getBucketName());
    }
}
